// 导入数据库模块
const db = require('../db/index');

// 增加 处理用户添加请求的路由处理函数
exports.userAdd = (req, res) => {
    // 创建一个空对象来存储字段
    const fields = {}
    // 检查请求中是否包含 name，并将其存储在 fields 对象中
    if (req.body.name) fields.name = req.body.name;  
    // 检查请求中是否包含 addr，并将其存储在 fields 对象中
    if (req.body.addr) fields.addr = req.body.addr;
    // 检查请求中是否包含 age，并将其存储在 fields 对象中
    if (req.body.age) fields.age = req.body.age;
    // 检查请求中是否包含 birth，并将其存储在 fields 对象中
    if (req.body.birth) fields.birth = req.body.birth;
    // 检查请求中是否包含 sex，并将其存储在 fields 对象中
    if (req.body.sex) fields.sex = req.body.sex;
    // 构建 SQL 查询语句，将 fields 对象作为参数
    const sql = `INSERT INTO user_info SET ?`;
    // 执行 SQL 查询，将字段数据插入数据库
    db.query(sql, fields, (err, results) => {
        if (err) {
            // 如果发生错误，返回 HTTP 400 错误并将错误信息作为 JSON 响应
            return res.status(400).json(err);
        }
        if (results.affectedRows !== 1) {
            // 如果受影响的行数不等于 1，表示添加失败，返回 HTTP 400 错误
            return res.status(400).json('添加失败');
        }
        // 添加成功，将字段数据作为 JSON 响应
        res.json(fields); 
    });
}

// 查询
exports.userAll = (req,res) => {
    const sql = `SELECT * from user_info order by id desc`
    db.query(sql,(err,results) => {
        if(err) return res.status(400).json(err)
        if(results.length === 0) return res.status(200).json('查无数据');
        res.json(results);
    })
}

// 编辑
exports.userEdit = (req,res) =>{
    const fields = {};
    // 检查请求中是否包含 name，并将其存储在 fields 对象中
    if (req.body.name) fields.name = req.body.name;  
    // 检查请求中是否包含 addr，并将其存储在 fields 对象中
    if (req.body.addr) fields.addr = req.body.addr;
    // 检查请求中是否包含 age，并将其存储在 fields 对象中
    if (req.body.age) fields.age = req.body.age;
    // 检查请求中是否包含 birth，并将其存储在 fields 对象中
    if (req.body.birth) fields.birth = req.body.birth;
    // 检查请求中是否包含 sex，并将其存储在 fields 对象中
    if (req.body.sex) fields.sex = req.body.sex;
    const sql = 'update user_info set ? where id = ?'
    db.query(sql,[fields,req.params.id],(err,results) => {
        if(err) return res.status(400).json(err)
            if(results.affectedRows !==1 ) return res.status(400).json('编辑失败');
            res.json(fields);
    })
}

//删除
exports.userDelect = (req,res) =>{
    const sql = `delete from user_info where id = ?`;
    db.query(sql, req.params.id, (err,result) => {
        if(err) return res.status(400).json(err);
        if(result.affectedRows !== 1) return res.status(400).json('删除失败');
        res.json('删除成功');
    })
}
